d <- read.csv("../data/processed.csv")
d$LogRT <- log(d$RT)
names(d)
##  [1] "X"            "ID.true"      "Word"         "Label"        "ConcValCombo"
##  [6] "Task"         "Response"     "Accuracy"     "EventTime"    "Value"       
## [11] "RT"           "LogRT"

Goals

The goals of this analysis is to determine to what extent the differences we find hold within the sample of participants.

The piloting results tell us that there are indeed task differences for RT.

To that end we can ask:

  1. What percentage of the participants show this effect?

  2. What percentage of items showed this effect?

ggplot(d, aes(x=LogRT, fill=Task)) + 
  geom_density(alpha=.4) 

ConcValCombo

ConcValCombo x Task x LogRT

ggplot(d, aes(x=LogRT, fill=Task)) + 
  geom_density(alpha=.4) +
  facet_wrap(~ConcValCombo)

agr = d %>%
    group_by(Task,ConcValCombo) %>%
    summarize(MeanRT = mean(RT), 
              CILow = ci.low(RT), 
              CIHigh = ci.high(RT)) %>%
    mutate(YMin = MeanRT - CILow, 
           YMax = MeanRT + CIHigh)
## `summarise()` has grouped output by 'Task'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=Task,y=MeanRT,fill=Task)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~ConcValCombo) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))

  # theme(axis.text.x = element_text(angle = 45, hjust = 1))

Task x ConcValCombo x Mean Accuracy

agr = d %>%
    group_by(Task,ConcValCombo) %>%
    summarize(MeanAccuracy = mean(Accuracy), 
              CILow = ci.low(Accuracy), 
              CIHigh = ci.high(Accuracy)) %>%
    mutate(YMin = MeanAccuracy - CILow, 
           YMax = MeanAccuracy + CIHigh)
## `summarise()` has grouped output by 'Task'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=Task,y=MeanAccuracy,fill=Task)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~ConcValCombo) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))

  # theme(axis.text.x = element_text(angle = 45, hjust = 1))

Acuracy by-item

agr = d %>%
    group_by(Task,ConcValCombo,Word) %>%
    summarize(MeanAccuracy = mean(Accuracy))
## `summarise()` has grouped output by 'Task', 'ConcValCombo'. You can override
## using the `.groups` argument.
ggplot(agr, aes(x=MeanAccuracy, fill=ConcValCombo)) + 
  geom_density(alpha=.4) +
  facet_wrap(~Task)

ggplot(agr, aes(x=MeanAccuracy, fill=Task)) + 
  geom_density(alpha=.4) +
  facet_wrap(~ConcValCombo)

Accuracy by-participant

agr = d %>%
    # filter(Task == "valence") %>% 
    group_by(Task,ConcValCombo,ID.true) %>%
    summarize(MeanAccuracy = mean(Accuracy))
## `summarise()` has grouped output by 'Task', 'ConcValCombo'. You can override
## using the `.groups` argument.
ggplot(agr, aes(x=MeanAccuracy, fill=ConcValCombo)) + 
  geom_density(alpha=.4) +
  facet_wrap(~Task)

ggplot(agr, aes(x=MeanAccuracy, fill=Task)) + 
  geom_density(alpha=.4) +
  facet_wrap(~ConcValCombo)

Differences by-item, aggregating over participants

Some “surprising” differences - HURL: doesn’t seem to have a difference - VIOLATE: has a huge difference –> is the difference for VIOLATE a function of exteme emotive component as compared to HURL? Like, visceral

Generalization: In no case is the peak for Semantic Task === except for FEELING === higher than the peak for valence.

ggplot(d, aes(x=LogRT, fill=Task)) + 
  geom_density(alpha=.4) +
  facet_wrap(~Word,ncol=4)

agr = d %>%
    group_by(Task,Word) %>%
    summarize(MeanRT = mean(RT), 
              CILow = ci.low(RT), 
              CIHigh = ci.high(RT)) %>%
    mutate(YMin = MeanRT - CILow, 
           YMax = MeanRT + CIHigh)
## `summarise()` has grouped output by 'Task'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=Task,y=MeanRT,fill=Task)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~Word,ncol=4) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))

  # theme(axis.text.x = element_text(angle = 45, hjust = 1))

Looking at specific items

First, the clear cases where we see what we expected to find, then some other interesting cases

Clear cases

VIOLATE

agr = d %>%
  filter(Word == "violate") %>% 
    group_by(Task) %>%
    summarize(MeanAccuracy = mean(Accuracy),
              MeanLogRT = mean(LogRT),
              Variance = var(LogRT))
              
print(agr)
## # A tibble: 2 × 4
##   Task     MeanAccuracy MeanLogRT Variance
##   <chr>           <dbl>     <dbl>    <dbl>
## 1 semantic          0.4      7.65   0.0791
## 2 valence           0.6      7.33   0.0176
ggplot(d[d$Word=="violate",], aes(x=LogRT, fill=Task)) + 
  geom_density(alpha=.4)

DISAPPOINT

agr = d %>%
  filter(Word == "disappoint") %>% 
    group_by(Task) %>%
    summarize(MeanAccuracy = mean(Accuracy),
              MeanLogRT = mean(LogRT),
              Variance = var(LogRT))
             
print(agr)
## # A tibble: 2 × 4
##   Task     MeanAccuracy MeanLogRT Variance
##   <chr>           <dbl>     <dbl>    <dbl>
## 1 semantic         0.35      7.54  0.0455 
## 2 valence          0.45      7.31  0.00722
ggplot(d[d$Word=="disappoint",], aes(x=LogRT, fill=Task)) + 
  geom_density(alpha=.4)

FROWN

Should be clearly concrete, but accuracy at chance

agr = d %>%
  filter(Word == "frown") %>% 
    group_by(Task) %>%
    summarize(MeanAccuracy = mean(Accuracy),
              MeanLogRT = mean(LogRT),
              Variance = var(LogRT))
              
print(agr)
## # A tibble: 2 × 4
##   Task     MeanAccuracy MeanLogRT Variance
##   <chr>           <dbl>     <dbl>    <dbl>
## 1 semantic         0.45      7.54   0.0600
## 2 valence          0.45      7.34   0.0149
ggplot(d[d$Word=="frown",], aes(x=LogRT, fill=Task)) + 
  geom_density(alpha=.4)

LAUGH

  • More accurate for semantictask, but still longer RT
  • low variance
agr = d %>%
  filter(Word == "laugh") %>% 
    group_by(Task) %>%
    summarize(MeanAccuracy = mean(Accuracy),
              MeanLogRT = mean(LogRT),
              Variance = var(LogRT))
              
print(agr)
## # A tibble: 2 × 4
##   Task     MeanAccuracy MeanLogRT Variance
##   <chr>           <dbl>     <dbl>    <dbl>
## 1 semantic         0.6       7.45   0.0229
## 2 valence          0.45      7.31   0.0260
ggplot(d[d$Word=="laugh",], aes(x=LogRT, fill=Task)) + 
  geom_density(alpha=.4)

Cases where there are No RT differences between Task

IMPOSE

agr = d %>%
  filter(Word == "impose") %>% 
    group_by(Task) %>%
    summarize(MeanAccuracy = mean(Accuracy),
              MeanLogRT = mean(LogRT),
              Variance = var(LogRT))
              
print(agr)
## # A tibble: 2 × 4
##   Task     MeanAccuracy MeanLogRT Variance
##   <chr>           <dbl>     <dbl>    <dbl>
## 1 semantic         0.5       7.54   0.0636
## 2 valence          0.45      7.51   0.0541
ggplot(d[d$Word=="impose",], aes(x=LogRT, fill=Task)) + 
  geom_density(alpha=.4)

Mabe some surprising results?

HURL

expected to be very concrete, and very negative - high variance

agr = d %>%
  filter(Word == "hurl") %>% 
    group_by(Task) %>%
    summarize(MeanAccuracy = mean(Accuracy),
              MeanLogRT = mean(LogRT),
              Variance = var(LogRT))
              
print(agr)
## # A tibble: 2 × 4
##   Task     MeanAccuracy MeanLogRT Variance
##   <chr>           <dbl>     <dbl>    <dbl>
## 1 semantic          0.4      7.58   0.0587
## 2 valence           0.4      7.53   0.0746
ggplot(d[d$Word=="hurl",], aes(x=LogRT, fill=Task)) + 
  geom_density(alpha=.4)

FEELING

  • don’t really have clear expectations
  • higher variance in Semantic task versus Valence task
agr = d %>%
  filter(Word == "feeling") %>% 
    group_by(Task) %>%
    summarize(MeanAccuracy = mean(Accuracy),
              MeanLogRT = mean(LogRT),
              Variance = var(LogRT))
              
print(agr)
## # A tibble: 2 × 4
##   Task     MeanAccuracy MeanLogRT Variance
##   <chr>           <dbl>     <dbl>    <dbl>
## 1 semantic         0.45      7.47   0.0583
## 2 valence          0.5       7.43   0.0256
ggplot(d[d$Word=="feeling",], aes(x=LogRT, fill=Task)) + 
  geom_density(alpha=.4)

Differences by participant

Semantic Task

ConcValCombo Mean Accuracy

agr = d %>%
    filter(Task == "semantic") %>% 
    group_by(ConcValCombo,ID.true) %>%
    summarize(MeanAccuracy = mean(Accuracy))
## `summarise()` has grouped output by 'ConcValCombo'. You can override using the
## `.groups` argument.
ggplot(agr, aes(x=MeanAccuracy, fill=ConcValCombo)) + 
  geom_density(alpha=.4)

ConcValCombo at (Log) RT

agr = d %>%
    filter(Task == "semantic") %>% 
    group_by(ConcValCombo,ID.true) %>%
    summarize(MeanLogRT = mean(LogRT),
              MeanRT = mean(RT))
## `summarise()` has grouped output by 'ConcValCombo'. You can override using the
## `.groups` argument.
ggplot(agr, aes(x=MeanLogRT, fill=ConcValCombo)) + 
  geom_density(alpha=.4)

ggplot(agr, aes(x=MeanRT, fill=ConcValCombo)) + 
  geom_density(alpha=.4)

ConcValCombo x RT by-participant

Lots of differences, unlclear if anything is consistent

agr = d %>%
  filter(Task == "semantic") %>% 
    group_by(ID.true,ConcValCombo) %>%
    summarize(MeanRT = mean(RT), 
              CILow = ci.low(RT), 
              CIHigh = ci.high(RT)) %>%
    mutate(YMin = MeanRT - CILow, 
           YMax = MeanRT + CIHigh)
## `summarise()` has grouped output by 'ID.true'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ID.true,y=MeanRT,fill=ID.true)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~ConcValCombo) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ConcValCombo,y=MeanRT,fill=ConcValCombo)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~ID.true) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

ConcValCombo x Accuracy, by-participant

LOTS of variance

agr = d %>%
  filter(Task == "semantic") %>% 
    group_by(ID.true,ConcValCombo) %>%
    summarize(MeanAccuracy = mean(Accuracy), 
              CILow = ci.low(Accuracy), 
              CIHigh = ci.high(Accuracy)) %>%
    mutate(YMin = MeanAccuracy - CILow, 
           YMax = MeanAccuracy + CIHigh)
## `summarise()` has grouped output by 'ID.true'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ID.true,y=MeanAccuracy,fill=ID.true)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~ConcValCombo) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ConcValCombo,y=MeanAccuracy,fill=ConcValCombo)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~ID.true) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

by-participant, by-item

agr = d %>%
  filter(Task == "semantic") %>% 
    group_by(ID.true,Word) %>%
    summarize(MeanLogRT = mean(LogRT), 
              CILow = ci.low(LogRT), 
              CIHigh = ci.high(LogRT)) %>%
    mutate(YMin = MeanLogRT - CILow, 
           YMax = MeanLogRT + CIHigh)
## `summarise()` has grouped output by 'ID.true'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ID.true,y=MeanLogRT,fill=ID.true)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~Word,ncol=4) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

agr = d %>%
  filter(Task == "semantic") %>% 
    group_by(ID.true,Word) %>%
    summarize(MeanAccuracy = mean(Accuracy), 
              CILow = ci.low(Accuracy), 
              CIHigh = ci.high(Accuracy)) %>%
    mutate(YMin = MeanAccuracy - CILow, 
           YMax = MeanAccuracy + CIHigh)
## `summarise()` has grouped output by 'ID.true'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ID.true,y=MeanAccuracy,fill=ID.true)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~Word,ncol=4) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

Valence Task

ConcValCombo x Mean Accuracy

agr = d %>%
    filter(Task == "valence") %>% 
    group_by(ConcValCombo,ID.true) %>%
    summarize(MeanAccuracy = mean(Accuracy))
## `summarise()` has grouped output by 'ConcValCombo'. You can override using the
## `.groups` argument.
ggplot(agr, aes(x=MeanAccuracy, fill=ConcValCombo)) + 
  geom_density(alpha=.4)

ConcValCombo x (Log) RT

agr = d %>%
    filter(Task == "valence") %>% 
    group_by(ConcValCombo,ID.true) %>%
    summarize(MeanLogRT = mean(LogRT),
              MeanRT = mean(RT))
## `summarise()` has grouped output by 'ConcValCombo'. You can override using the
## `.groups` argument.
ggplot(agr, aes(x=MeanLogRT, fill=ConcValCombo)) + 
  geom_density(alpha=.4)

ggplot(agr, aes(x=MeanRT, fill=ConcValCombo)) + 
  geom_density(alpha=.4)

ConcValCombo x RT by-participant

agr = d %>%
  filter(Task == "valence") %>% 
    group_by(ID.true,ConcValCombo) %>%
    summarize(MeanRT = mean(RT), 
              CILow = ci.low(RT), 
              CIHigh = ci.high(RT)) %>%
    mutate(YMin = MeanRT - CILow, 
           YMax = MeanRT + CIHigh)
## `summarise()` has grouped output by 'ID.true'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ID.true,y=MeanRT,fill=ID.true)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~ConcValCombo) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ConcValCombo,y=MeanRT,fill=ConcValCombo)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~ID.true) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

ConcValCombo x Accuracy, by-participant

agr = d %>%
  filter(Task == "valence") %>% 
    group_by(ID.true,ConcValCombo) %>%
    summarize(MeanAccuracy = mean(Accuracy), 
              CILow = ci.low(Accuracy), 
              CIHigh = ci.high(Accuracy)) %>%
    mutate(YMin = MeanAccuracy - CILow, 
           YMax = MeanAccuracy + CIHigh)
## `summarise()` has grouped output by 'ID.true'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ID.true,y=MeanAccuracy,fill=ID.true)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~ConcValCombo) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ConcValCombo,y=MeanAccuracy,fill=ConcValCombo)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~ID.true) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

By participant, by Item

agr = d %>%
  filter(Task == "valence") %>% 
    group_by(ID.true,Word) %>%
    summarize(MeanRT = mean(RT), CILow = ci.low(RT), CIHigh = ci.high(RT)) %>%
    mutate(YMin = MeanRT - CILow, YMax = MeanRT + CIHigh)
## `summarise()` has grouped output by 'ID.true'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ID.true,y=MeanRT,fill=ID.true)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~Word) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

agr = d %>%
  filter(Task == "valence") %>% 
    group_by(ID.true,Word) %>%
    summarize(MeanAccuracy = mean(Accuracy), 
              CILow = ci.low(Accuracy), 
              CIHigh = ci.high(Accuracy)) %>%
    mutate(YMin = MeanAccuracy - CILow, 
           YMax = MeanAccuracy + CIHigh)
## `summarise()` has grouped output by 'ID.true'. You can override using the
## `.groups` argument.
dodge = position_dodge(.9)
ggplot(data=agr, aes(x=ID.true,y=MeanAccuracy,fill=ID.true)) +
  geom_bar(position=dodge,stat="identity") +
  facet_wrap(~Word,ncol=4) +
  geom_errorbar(aes(ymin=YMin,ymax=YMax),width=.25,position=position_dodge(0.9))+
  # ylim(5,8) +
  guides(fill = "none") +
  theme(axis.text.x = element_text(angle = 20, hjust = 1))

One by one Graphs

plot_by_word <- function(data) {
  # Get the unique Words
  unique_words <- unique(data$Word)
  
  # Iterate over each Word and create a plot
  for (word in unique_words) {
    # Filter data for the current Word
    data_filtered <- data %>%
      filter(Word == word) %>%
      group_by(Task, ID.true,Word) %>%
      summarize(MeanRT = mean(RT), 
                CILow = ci.low(RT), 
                CIHigh = ci.high(RT)) %>%
      mutate(YMin = MeanRT - CILow, 
             YMax = MeanRT + CIHigh)
    
    # Generate the plot for the current Word
    p <- ggplot(data_filtered, aes(x = ID.true, y = MeanRT, alpha = Task)) +
      geom_bar(position=dodge,stat="identity") +
      geom_errorbar(aes(ymin = YMin, ymax = YMax), width = 0.25, position = position_dodge(0.9) ) +  # Error bars
      # facet_wrap(~Task) +
      labs(title = paste("Mean RT for Word:", word), 
           x = NULL,  # Remove x-axis label
           y = "RT") +  # Add y-axis label
      guides(fill = "none")
      # theme(axis.text.x = element_text(angle = 45, hjust = 1))  # Tilt x-axis labels
    
    # Print the plot
    print(p)
  }
}

# Usage Example (assuming `d` is your dataframe)
plot_by_word(d)
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.
## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.
## `summarise()` has grouped output by 'Task', 'ID.true'. You can override using
## the `.groups` argument.

## Warning: Using alpha for a discrete variable is not advised.